namespace Plugins.Engine.Internal
{
    using System;
    using Plugins.Interfaces;

    internal interface IPluginContextInternal
    {
        bool Load();
        bool Unload();

        IPluginObjectInternal Load<T>(Type type);
        IPluginObjectInternal Unload<T>(Type type);
        //void Unload(IPluginObjectInternal obj);

        IPluginAssemblyInternal Assembly { get; }

        IPluginAssemblyConfiguration Configuration { get; }

        IPluginHostInternal Host { get; }

        bool IsLoaded { get; }
    }
}

